/**
 * 个性化病案浏览设置界面js
 */

var InTreeData = [];//存放已选择的数据列表
var selectedImgTempData;  //存放选择的图片分类模板信息
var selectedFieldTempData;  //存放选择的字段分类模板信息
 (function(){
 	
 	//加载系统默认图片分类模板
 	loadPersonalizedTemple();
 	
	 //图片显示方式
	$('#imgShowMode').combobox({
	 	width : 120,
 		panelHeight : 120,
 		valueField : 'id',
 		textField : 'text',
 		data : [{'id': 1,'text': '适合宽度'},{'id': 2,'text': '适合高度'},{'id': 3,'text': '适合大小'},{'id': 4,'text': '实际大小'}],
 		onLoadSuccess:function(data){
 			$('#imgShowMode').combobox('select',data[0].id);
 		}
	 })
	 
	 //默认显示行数
	$('#showNumberRow').combobox({
	 	width : 120,
 		panelHeight : 120,
 		valueField : 'id',
 		textField : 'text',
 		data : [{'id': 1,'text': '20'},{'id': 2,'text': '30'},{'id': 3,'text': '50'}],
 		onLoadSuccess:function(data){
 			$('#showNumberRow').combobox('select',data[0].id);
 		}
	 })
	 
	 //默认打印纸张
	$('#print-paper').combobox({
	 	width : 120,
 		panelHeight : 120,
 		valueField : 'id',
 		textField : 'text',
 		data : [{'id': 1,'text': 'A4'},{'id': 2,'text': 'A3'},{'id': 3,'text': 'B5'},{'id': 3,'text': 'B4'}],
 		onLoadSuccess:function(data){
 			$('#print-paper').combobox('select',data[0].id);
 		}
	 })
	 
	 //加载系统默认模板字段
	 $('#FieldIn_tree').tree({
 		url : "systemMaintenance/getFieldInTree",
 		checkbox : true,
 		onLoadError : errorPromt
 	})
 	
 	//获取用户个性化设置信息
	$.ajax({
		url : "systemMaintenance/getInAccessSet",
		dataType : 'json',
		type : 'post',
		success : function(data){
			if (data.length > 0) {
				$('#print-paper').combobox('setValue',data[0].PRINTPAPER);  //纸张
				
				$('#showNumberRow').combobox('setValue',data[0].NUMBERROW); //显示行数
				
				$('#imgShowMode').combobox('setValue',data[0].FSHOWMODE);   //图片显示方式
				
				$('input[value="'+data[0].FSHOWCOLOR+'"]').prop('checked',true);  //设置单选框选择(黑白、彩色)
			}
		},error : errorPromt
	})
	
	//初始化用户图片分类模板和系统默认模板  param 作用初始化选中 系统默认模板
	loadDefaultImgShowTemple(null);
	
	//初始化用户字段分类模板和系统默认模板  param 作用初始化选中 系统默认模板
	loadDefaultFieldShowTemple(null);
	
 })();
 
 //加载系统默认图片分类模板
 function loadPersonalizedTemple(){
 	$('#data-PersonalizedTemple').datagrid({
// 		url : "systemMaintenance/getUserImgShowTemple",
        toolbar : "#toolbar-UserImgData",
		rownumbers : true,
		singleSelect : true,
		fit : true,
		fitColumns : true,
		border : false,
		columns : [[{field:'FNAME',align:'center',title:'分类名称',width:100},
					{field:'operation',align:'center',title:'操作',width:100,
					formatter : function(value, row, index) {
						return  "<button class = 'deleteInImg' onclick='deleteInImg("+index+")'>删除</button>" +
								"<button class = 'upInImg'  onclick='upInImg("+index+")'>上移</button>" +
								"<button class = 'downInImg'  onclick='downInImg("+index+")'>下移</button>";
	        		}}]],
		onLoadError : errorPromt
 	})
 }
 
 //图片分类模板删除行
 function deleteInImg(index){
 	//获取当前  点击行的元素下标
 	var rowIndex = parseInt($(".deleteInImg"+index).parent().parent().parent().attr('datagrid-row-index'));
 	$('#data-PersonalizedTemple').datagrid('deleteRow',rowIndex);
 }
 

 //图片分类模板上移
 function upInImg(index){
 	//获取当前  点击行的元素下标
 	var rowIndex = parseInt($(".deleteInImg"+index).parent().parent().parent().attr('datagrid-row-index'));
 	if (rowIndex != 0) {
 		var toup = $('#data-PersonalizedTemple').datagrid('getData').rows[rowIndex];
	    var todown = $('#data-PersonalizedTemple').datagrid('getData').rows[rowIndex - 1];
	    
	    //交换两者的名称
	    $('#data-PersonalizedTemple').datagrid('getData').rows[rowIndex] = todown;
	    $('#data-PersonalizedTemple').datagrid('getData').rows[rowIndex - 1] = toup;
	    
	    //刷新行，并且选中刚操作的行
	    $('#data-PersonalizedTemple').datagrid('refreshRow', rowIndex);
	    $('#data-PersonalizedTemple').datagrid('refreshRow', rowIndex - 1);
	    
	    $('#data-PersonalizedTemple').datagrid('selectRow', rowIndex - 1);
 	}
 }
 
 //图片分类模板下移
 function downInImg(index){
 	
 	//获取当前  点击行的元素下标
 	var rowIndex = parseInt($(".deleteInImg"+index).parent().parent().parent().attr('datagrid-row-index'));
 	
 	//获取所有行的长度
	var rows = $("#data-PersonalizedTemple").datagrid('getRows').length;
	
 	if (rowIndex != rows - 1) {
	 	
	 	var todown = $('#data-PersonalizedTemple').datagrid('getData').rows[rowIndex]
	    var toup = $('#data-PersonalizedTemple').datagrid('getData').rows[rowIndex + 1];
	    
	    //交换两者的名称
	    $('#data-PersonalizedTemple').datagrid('getData').rows[rowIndex + 1] = todown;
	    $('#data-PersonalizedTemple').datagrid('getData').rows[rowIndex] = toup;
	    
	    //刷新行，并且选中刚操作的行
	    $('#data-PersonalizedTemple').datagrid('refreshRow', rowIndex);
	    $('#data-PersonalizedTemple').datagrid('refreshRow', rowIndex + 1);
	    $('#data-PersonalizedTemple').datagrid('selectRow', rowIndex + 1);
 	}
 }
 
 
 //初始化用户图片分类模板和系统默认模板
 function loadDefaultImgShowTemple(num){
	$('#defaultImgShowTemple').combobox({
		url : "systemMaintenance/getUserImgShowTemple",
	 	width : 120,
 		panelHeight : 120,
 		editable : false,
 		valueField : 'id',
 		textField : 'text',
 		onLoadSuccess : function(data){
 			//开始加载 图片分类主模板方法
 			if (num == null) {
 				for (var i = 0; i < data.length; i++) {
 					if (data[i].FISDEFAULT == 0 && data[i].type == 1) {
 						$('#defaultImgShowTemple').combobox('select',data[i].id);
 						break;
 					}
 				}
 			}else{
	 			$('#defaultImgShowTemple').combobox('select',num);
 			}
 		},
 		onSelect:loadUserImgDataByTemp  //加载图片分类模板方法
	 })
 }
 
//初始化个性化字段模板和系统默认模板
function  loadDefaultFieldShowTemple(num){
	
	$('#defaultFieldShowTemple').combobox({
		url : "systemMaintenance/getUserFieldShowTemple",
	 	width : 150,
 		panelHeight : 120,
 		editable : false,
 		valueField : 'id',
 		textField : 'text',
 		onLoadSuccess : function(data){
 			
 			if (num == null) {
 				for (var i = 0; i < data.length; i++) {
 					if (data[i].FISDEFAULT == 0 && data[i].type == 1) {
 						$('#defaultFieldShowTemple').combobox('select',data[i].id);
 						break;
 					}
 				}
 			}else{
	 			$('#defaultFieldShowTemple').combobox('select',num);
 			}
 		},
 		onSelect:loadUserFieldDataByTemp   //加载图片分类模板方法
	 })
}
	 

 //加载图片分类模板方法
 function loadUserImgDataByTemp(record){
 	selectedImgTempData = record;
 	
 	$('#data-PersonalizedTemple').datagrid({
 		url : "systemMaintenance/loadUserImgDataByTemp",
 		queryParams : {tempid: record.id}
 	})
 }
 
 //根据字段模板id加载该模板字段
 function loadUserFieldDataByTemp(record){
 	selectedFieldTempData = record;
 	
 	//判断不为系统模板  执行的操作
 	if (record.type !=0) {
	 	//根据字段分类模板id同步加载字段信息
	 	$.ajax({
		 	url : "systemMaintenance/loadUserFieldDataByTemp",
			dataType : 'json',
			asnyc : false,
			type : 'post',
			data : {mbid : record.id},
			success : function(data){
				InTreeData = data;
				loadInTree();   //加载树
			},error : errorPromt
		 })
 	}
 }
 
 //列查找方法
 function searchInField (value,name){
 	$('#FieldIn_tree').tree('doFilter',value);
 }
 
 //保存个性化设置
 function saveInAccessSet(){
 	$.ajax({
	 	url : "systemMaintenance/saveInAccessSet",
		dataType : 'json',
		type : 'post',
		data : $('#form-indivduationInfo').serialize(),
		success : function(data){
			if (data) {
				$.messager.alert('提示','保存成功','info');
			}else{
				$.messager.alert('提示','保存失败','info');
			}
		},error : errorPromt
	 })
 }
 
 //已选列全选方法
 function InCheckAll(){
 	
	var treeObj = $.fn.zTree.getZTreeObj("selectedInField-tree"); //获取ztree对象树
	var nodes = treeObj.getCheckedNodes(true);					//获取所有选中的树节点
	var allNodes = treeObj.getNodes();                          //获取所有的树节点（包括勾选和未勾选）
	
	if (nodes.length != allNodes.length) {  //判断如果勾选的树节点个数与  所有树节点个数不同
		treeObj.checkAllNodes(true);
	}else{
		treeObj.checkAllNodes(false);
	}
 }
 
  //添加选择的树节点到已选字段列表中
 function addInField(){
 	var nodes = $('#FieldIn_tree').tree('getChecked');
 	if (nodes.length == 0) {
 		$.messager.alert('提示','未勾选任何数据','info');
 		return;
 	}
 	
 	for (var i = 0; i < nodes.length; i++) {
	 	var count = 0;
 		for (var j = 0; j < InTreeData.length; j++) {
 			if (nodes[i].FFIELDCODE == InTreeData[j].FFIELDCODE) {  //判断已经存在的情况下
 				
 				count ++ ;
 				break;
 			}
 		}
 	
 		if (count == 0) {
	 		//先将 要添加的数据放置一个obj对象中
	 		var obj = {id: ""+nodes[i].id+"", name: nodes[i].text, FFIELDCODE: nodes[i].FFIELDCODE};
	 		
 			InTreeData.push(obj);
 		}
 	}
 	loadInTree();   //重新加载树
 }
 
 //加载已选树
 function loadInTree(){
 	var setting={
		view: {  
	            showLine:false, //不显示连接线  
	            showIcon:true //不显示图标  
	    },
	 	check :{
		 		enable: true,
				chkStyle: "checkbox"
	    },
		data: {                                    
			  keep : {
			  	leaf : true,
			  	parent : true
			  }
		},
		edit: {
			drag:{
				isCopy: false,
				isMove: true,
				prev: true,
				next: true,
				inner: false
			},
			enable: true,
			showRenameBtn :false  //是否显示编辑按钮
		},
		callback : {
			onRemove: InzTreeOnRemove
		}
	};
		
	$.fn.zTree.init($("#selectedInField-tree"), setting, InTreeData);
 }
 
 // zTree树删除节点方法
 function InzTreeOnRemove(event, treeId, treeNode){
 	for (var i = 0; i < InTreeData.length; i++) {
 		if (treeNode.id == InTreeData[i].id) {   //如果删除制定节点id和  整个树中的某列数据id相等
 			if (i == 0) {
 				InTreeData.shift();//删除第一个元素，数组元素位置自动前移，返回被删除的元素
 			}else if (i == InTreeData.length-1) {
 				InTreeData.pop();//删除最后一个元素，并返回该元素
 			}else{
	 			InTreeData.splice(i,1);  //从当前位置删除后面一个元素
 			}
 		}
 	}
 }
 
 //从已选字段列表中删除选择的列
 function deleteInField(){
 	var treeObj = $.fn.zTree.getZTreeObj("selectedInField-tree"); //获取ztree对象树
 	
	var nodes = treeObj.getCheckedNodes(true);	    	//获取所有选中的节点
	//获取所有选中的树节点
	for (var i = 0; i < nodes.length; i++) {
		treeObj.removeNode(nodes[i]);  //删除指定节点
		for (var j = 0; j < InTreeData.length; j++) {
	 		if (nodes[i].id == InTreeData[j].id) {   //如果删除制定节点id和  整个树中的某列数据id相等
	 			if (j == 0) {
	 				InTreeData.shift();//删除第一个元素，数组元素位置自动前移，返回被删除的元素
	 			}else if (j == InTreeData.length-1) {
	 				InTreeData.pop();//删除最后一个元素，并返回该元素
	 			}else{
		 			InTreeData.splice(j,1);  //从当前位置删除后面一个元素
	 			}
	 		}
 		}
	}
 }
 
 //添加自定义字段模板方法
 function addInFieldTemple(){
 	$.messager.prompt('提示信息', '请输入模板名称：', function(r){
		if (r){  // r 代表输入的模板名称 
			
			if (!checkInmbName("defaultFieldShowTemple",r)) {
				$.messager.alert('提示','保存失败,存在相同的模板名称，请修改','info');
				return;
			}
			//调用保存方法
			submitInFieldTemp(r,"");
		}
	});
 }
 
 //修改自定义字段模板名称方法
 function editInFieldTemple(){
 	
 	//判断要修改的模板 是否为系统字段模板
 	if (selectedFieldTempData.type == 0) {
 		$.messager.alert('提示','不能修改系统默认字段模板','info');
		return;
 	}
 	$.messager.prompt('提示信息', '请输入模板名称：', function(r){
		if (r){  // r 代表输入的模板名称 
			if (r == selectedFieldTempData.text) {  //判断如果修改前的名称与现在的一致
				$.messager.alert('提示','未对名称进行修改','info');
				return;
			}
			
			if (!checkInmbName("defaultFieldShowTemple",r)) {
				$.messager.alert('提示','保存失败,存在相同的模板名称，请修改','info');
				return;
			}
			//调用保存方法
			submitInFieldTemp(r,$('#defaultFieldShowTemple').combobox('getValue'));
		}
	});
 }
 
 //检测自定义图片分类模板和  字段模板是否存在相同的名称
 function checkInmbName(comboboxId, r){
 	var mbArray = $('#'+comboboxId).combobox('getData');  //获取combobox所有的值
	var count = 0;
	for (var i = 0; i < mbArray.length; i++) {
		if (mbArray[i].text == r) {
			count ++;
			break;
		}
	}
	if (count != 0) {
		return false;
	}
	return true;
 }
 
 //添加或修改自定义字段模板通用方法
 function submitInFieldTemp(name,mbId){
 	$.ajax({
	 	url : "systemMaintenance/saveInFieldTemp",
		dataType : 'json',
		type : 'post',
		data : {name: name, mbId: mbId},
		success : function(data){
			
			if (data != false) {
				loadDefaultFieldShowTemple(data);
			}else{
				$.messager.alert('提示','操作失败','info');
			}
		},error : errorPromt
	 })
 }
 
 //根据自定义分类模板id保存字段
 function saveInFieldTemple(){
 	
 	if (selectedFieldTempData.type == 0) {
 		$.messager.alert('提示','不能对系统默认模板进行此操作','info');
 		return;
 	}
 	var mbid = selectedFieldTempData.id;  //获取模板id
 	
 	//获取所有的节点
 	var nodes = $.fn.zTree.getZTreeObj("selectedInField-tree").getNodes();
 	var fieldCode = "";		//字段编码拼接字符串
 	var fieldName = "";		//字段名称拼接字符串
 	for (var i = 0; i < nodes.length; i++) {
 		fieldCode += nodes[i].FFIELDCODE + ",";
 		fieldName += nodes[i].name + ",";
 	}
 	
 	$.ajax({
		url : "systemMaintenance/saveInFieldTemple",
		dataType : 'json',
		type : 'post',
		data : {mbid: mbid, fieldCode: fieldCode, fieldName: fieldName},
		success : function(data){
			if (data) {
				$.messager.alert('提示','保存成功','info');
			}else{
				$.messager.alert('提示','保存失败','info');
			}
		},error : errorPromt
	
	})
 }
 
 //删除字段分类模板
 function deleteInFieldTemple(){
 	//判断要删除的模板 是否为系统字段模板
 	if (selectedFieldTempData.type == 0) {
 		$.messager.alert('提示','不能修改系统默认字段模板','info');
		return;
 	}
 	
 	$.messager.confirm('信息提示', '确定要删除'+selectedFieldTempData.text+'该模板？', function (result) {
		if (result) {
			$.ajax({
		    	url : ctx +"/systemMaintenance/deleteFieldTemple",
				dataType : 'json',
				type : 'post',
				data : {fid: selectedFieldTempData.id},
				success : function(data){
				    if (data) {
						$.messager.alert('提示','删除成功','info');
						loadDefaultImgShowTemple(0);   //重新加载combobox
						
						InTreeData = []; //清空已选内容
						loadInTree();    //清空树
				    }else{
				    	$.messager.alert('提示','删除失败','info');
				    }
				},error : errorPromt
		    })
		}
	});
 }
 
 //添加个性化图片分类模板main
 function addInImgTemple(){
 	$.messager.prompt('提示信息', '请输入模板名称：', function(r){
		if (r){  // r 代表输入的模板名称 
			if (r == selectedFieldTempData.text) {  //判断如果修改前的名称与现在的一致
				$.messager.alert('提示','未对名称进行修改','info');
				return;
			}
			
			if (!checkInmbName("defaultImgShowTemple",r)) {
				$.messager.alert('提示','保存失败,存在相同的模板名称，请修改','info');
				return;
			}
			//调用保存方法
			submitInImgTemp(r,"");
		}
	});
 }
 
  //修改自定义图片模板名称方法
 function editInImgTemple(){
 	
 	//判断要修改的模板 是否为系统图片模板
 	if (selectedImgTempData.type == 0) {
 		$.messager.alert('提示','不能修改系统默认图片模板','info');
		return;
 	}
 	$.messager.prompt('提示信息', '请输入模板名称：', function(r){
		if (r){  // r 代表输入的模板名称 
			if (r == selectedImgTempData.text) {  //判断如果修改前的名称与现在的一致
				$.messager.alert('提示','未对名称进行修改','info');
				return;
			}
			
			if (!checkInmbName("defaultImgShowTemple",r)) {
				$.messager.alert('提示','保存失败,存在相同的模板名称，请修改','info');
				return;
			}
			//调用保存方法
			submitInImgTemp(r,$('#defaultImgShowTemple').combobox('getValue'));
		}
	});
 }
 
 //添加或修改自定义字段模板通用方法
 function submitInImgTemp(name,mbId){
 	$.ajax({
	 	url : "systemMaintenance/saveInImgTemp",
		dataType : 'json',
		type : 'post',
		data : {name: name, mbId: mbId},
		success : function(data){
			//返回修改或添加的图片分类模板fid值
			if (data != false) {
				loadDefaultImgShowTemple(data);  //重新加载combobox
			}else{
				$.messager.alert('提示','操作失败','info');
			}
		},error : errorPromt
	 })
 }
 
 //删除自定义图片分类模板
 function deleteInImgTemple(){
 	//判断要删除的模板 是否为系统默认模板
 	if (selectedImgTempData.type == 0) {
 		$.messager.alert('提示','不能修改系统默认字段模板','info');
		return;
 	}
 	
 	$.messager.confirm('信息提示', '确定要删除'+selectedImgTempData.text+'该模板？', function (result) {
		if (result) {
			$.ajax({
		    	url : ctx +"/systemMaintenance/deleteInImgTemple",
				dataType : 'json',
				type : 'post',
				data : {fid: selectedImgTempData.id},
				success : function(data){
				    if (data) {
						$.messager.alert('提示','删除成功','info');
						loadDefaultImgShowTemple(0);  //重新加载combobox
						
				    }else{
				    	$.messager.alert('提示','删除失败','info');
				    }
				},error : errorPromt
		    })
		}
	});
 }
 
 //根据图片分类模板id 保存该模板信息
 function saveInImgTemple(){
 	
 	//不能对系统默认模板进行此操作
 	if (selectedImgTempData.type == 0) {
 		$.messager.alert('提示','不能修改系统默认字段模板','info');
		return;
 	}
 	
 	var rows = $('#data-PersonalizedTemple').datagrid('getRows');  //获取图片分类模板所有行
 	
 	var mbidStr = "";//拼接图片模板分类id
 	for (var i = 0; i < rows.length; i++) {
 		
 		mbidStr += (i == rows.length-1)? rows[i].FMBID:rows[i].FMBID+",";
 	}
 	
 	$.ajax({
    	url : ctx +"/systemMaintenance/saveInImgTemple",
		dataType : 'json',
		type : 'post',
		data : {tmbidStr: mbidStr, mbid: selectedImgTempData.id},
		success : function(data){
		    if (data) {
				$.messager.alert('提示','保运成功','info');
		    }else{
		    	$.messager.alert('提示','保存失败','info');
		    }
		},error : errorPromt
    })
 }